package org.jeecg.modues.api.controller;

import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("/api/login")
public class ApiLoginController {

    @RequestMapping("/login")
    public String login(String username, String password) {
        if ("admin".equals(username) && "123456".equals(password)) {
            return "登录成功";
        } else {
            return "登录失败";
        }
    }

    @RequestMapping("/register")
    public Result register(String phone, String code, String password) {
        // 检查手机号是否已注册
        if (checkPhone(phone)) {
            return Result.error("Phone number already registered");
        }
        // 校验验证码
        if (!verifyCode(phone, code)) {
            return Result.error("Invalid verification code");
        }
        // 密码加密
        String encryptedPassword = encryptPassword(password);
        // 假设这里有一个方法可以将用户信息存入数据库
        // 实际开发中需要根据具体的数据库操作进行实现
        // 这里只是模拟注册过程
        log.info("Registering user with phone number {}, password {}", phone, encryptedPassword);
        // 返回注册结果
        return Result.ok("Registration successful");

    }

    public boolean checkPhone(String phoneNumber) {
        // 假设这里有一个方法可以查询数据库，检查手机号是否已注册
        // 如果已注册，返回true；否则，返回false
        // 实际开发中需要根据具体的数据库操作进行实现
        return false; // 这里只是一个示例，假设手机号未注册
    }

    private boolean verifyCode(String phoneNumber, String code) {
        // 假设这里有一个方法可以验证验证码
        // 实际开发中需要根据具体的验证码验证逻辑进行实现
        // 这里只是一个示例，假设验证码正确
        return true;
    }

    private String encryptPassword(String password) {
        // 假设这里有一个方法可以对密码进行加密
        // 实际开发中需要根据具体的加密算法进行实现
        // 这里只是一个示例，假设使用简单的MD5加密
        return "md5(" + password + ")"; // 这不是真正的MD5加密，实际开发中请使用安全的加密库
    }

    @RequestMapping("/logout")
    public Result<String> logout() {
        return Result.ok("退出成功");
    }

}
